
 ,事情有點多哈哈哈但我會盡量提前準備好內容的!!
,事情有點多哈哈哈但我會盡量提前準備好內容的!!繼昨天講解完三個小元件後,今天就是要來練習啦!!
總而言之挑了一個可以很難也可以很簡單的東西,
太久沒寫這種東西了,害我腦袋偶然間當機,
其實他還蠻考驗程式邏輯的,但我這裡只提供簡易的版本,
在此之後希望大家可以自行深入研究唷!!
總之先想辦法把介面拉出來(不知道要長怎樣的請拿出手機按出計算機)
然後把每按鍵事件先點出來,加上我們的程式碼
procedure TForm5.btn1Click(Sender: TObject);
begin
  edt1.Text:=edt1.Text+'1';     //在原有的文字+上我們的數字,並且顯示
end;
以此類推把你的1,2,3,4,5,6,7,8,9,0,+,-,x,/,通通加上去~
然後恭喜你完成了1/3的東西了
但接下來就是要考驗你的邏輯了!!
先幫我這樣做
OnShow那邊幫我點擊兩下,然後回到程式畫面

StringList是一個蠻好用的字串陣列,可以去網路上多多研究使用方法唷!!
procedure TForm5.FormShow(Sender: TObject);  //當視窗顯示時執行
begin
  NumL:=TStringList.Create; //啟動我們的Stringlist
end;
procedure TForm5.CalCheck;   //確認是否已有運算元的存在
begin
  if (Pos('+',edt1.text)>0) or      //判斷位置>0就是存在
     (Pos('-',edt1.text)>0) or
     (Pos('*',edt1.text)>0) or
     (Pos('/',edt1.text)>0)
  then
    NumC:=1
  else
    NumC:=0;
end;
procedure TForm5.CalResult;
var
  num1,num2:Integer;    //區域變數
begin
  if (Pos('+',edt1.text)>0) then	//判斷位置>0就是存在
    if Pos('+',edt1.text)<>Length(edt1.Text) then	//位置不在最後
      NumL.Delimiter:='+'
    else
      edt1.Text:=Copy(edt1.Text,1,Length(edt1.Text)-1);	//如果在最後則砍到最後面的運算值
  if (Pos('-',edt1.text)>0) then
    if Pos('-',edt1.text)<>Length(edt1.Text) then
      NumL.Delimiter:='-'
    else
      edt1.Text:=Copy(edt1.Text,1,Length(edt1.Text)-1);
  if (Pos('*',edt1.text)>0) then
    if Pos('*',edt1.text)<>Length(edt1.Text) then
      NumL.Delimiter:='*'
    else
      edt1.Text:=Copy(edt1.Text,1,Length(edt1.Text)-1);
  if (Pos('/',edt1.text)>0) then
    if Pos('/',edt1.text)<>Length(edt1.Text) then
      NumL.Delimiter:='/'
    else
      edt1.Text:=Copy(edt1.Text,1,Length(edt1.Text)-1);
  NumL.DelimitedText:=edt1.Text;
  if (NumL.Count<2) then	//判斷無第二個數值就停止
    Exit;
  num1:=StrToInt(NumL[0]);
  num2:=StrToInt(NumL[1]);
  if (Pos('+',edt1.text)>0) then
    edt1.Text:=IntToStr(num1+num2);
  if (Pos('-',edt1.text)>0) then
    edt1.Text:=IntToStr(num1-num2);
  if (Pos('*',edt1.text)>0) then
    edt1.Text:=IntToStr(num1*num2);
  if (Pos('/',edt1.text)>0) then
  begin
    edt1.Text:=FloatToStr(num1/num2);
  end;
涵式成後完,把我們+-x/的按鍵事件給打開來~
procedure TForm5.btn11Click(Sender: TObject);
begin
  CalCheck;    //先確認
  if NumC=1 then   //判斷是否存在運值
  begin
    CalResult;   //執行
  end;
  edt1.Text:=edt1.Text+'+'; 
end;
每個都給事件都補齊上去後!!
我們就大功告成啦!!!~
接下來就是F9去試試看你的簡易計算機囉!!
不曉得我這樣打和上註解有沒有人看不懂呢!?
如果看不懂的話~請在下方留言告訴我,我在添加更詳細的說明
那我們下次見囉!!See you Guys!
不過先預告一下~我可能會有一兩天中斷,
這裡要提醒你一下
鐵人賽的規則是「連續」30天
如果你中斷的話
就會從第1天開始計算